package com.bbcare.nutritious.plat.service;

import java.util.List;
import java.util.Map;

import com.bbcare.nutritious.plat.entity.PtCourseBespeak;
import com.bbcare.nutritious.plat.entity.PtCourseInfo;
import com.bbcare.nutritious.plat.entity.PtWeight;

/**
 * 孕妇体重接口
 *
 */
public interface ICourseService {
	/**
    * 查询app用户课程预约首页接口实现
    * 1.查询近四天的课程
    * 2.查询当前年的所有课程
    */
	Map<String, Object> getCourseBespeakIndex(PtCourseInfo courseInfo)throws Exception;
	/**
	 * 通过id查询课程详细信息
	 * @param id
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> getCourseInfoById(int id) throws Exception;
	/**
	 * 课程预约
	 * @param courseBespeak
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> doCourseToBespeak(PtCourseBespeak courseBespeak)throws Exception;
	/**
	 * 取消预约
	 * @param courseBespeak
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> cancelBespeak(PtCourseBespeak courseBespeak) throws Exception;
	/**
	 * 通过预约id获取预约信息 
	 */
	Map<String, Object> getCourseBespeakById(String courseBespeakId)throws Exception;
	/**
	 * 保存或修改课程信息
	 * @param courseInfo
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> saveCourseInfo(PtCourseInfo courseInfo) throws Exception;
	/**
	 * pc分页查询课程
	 * @param courseInfo
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> listCourseInfoForPage(PtCourseInfo courseInfo) throws Exception;
	/**
	 * 分页查询预约
	 * @param courseBespeak
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> listCourseBespeakForPage(PtCourseBespeak courseBespeak) throws Exception;
	/**
	 * 根据用户查询有课程的近四天的日期
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> getCourseDayOfFour() throws Exception;
	/**
	 * 条件查询预约数据（未分页，暂时供数据导出使用）
	 * @param courseBespeak
	 * @return
	 * @throws Exception
	 */
	List<PtCourseBespeak> listCourseBespeak(PtCourseBespeak courseBespeak)throws Exception;
	Map<String, Object> selectPDateForTime(Map<String, Object> paramMap) throws Exception;
	/**
	 * 条件查询课程
	 * @param courseInfo
	 * @return
	 * @throws Exception
	 */
	List<PtCourseInfo> listCourseInfoForAll(PtCourseInfo courseInfo) throws Exception;
	/**
	 * 删除课程
	 * @param courseInfo
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> delCourseInfo(PtCourseInfo courseInfo) throws Exception;
	/**
	 * 通过条件查询用户
	 * @param paramMap
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> selectPatientByParamForCourse(Map<String, Object> paramMap) throws Exception;
	/**
	 * 查询近四天的所有课程
	 * @param courseInfo
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> getCourseForFourDayOfAll(PtCourseInfo courseInfo) throws Exception;
	
}
